Much system design ignores performance goals, or simply uses “best effort,” which often means that performance is whatever the system happens to provide. Other approaches have offered solutions based upon selecting from design classes. For example, in the area of storage system design a solution based class may be specified as, “EVA disk array having RAID 10 storage.” This merely transfers the problem to the designer who has to predict whether the design class will be adequate and who also has to determine whether the workload for the system will allow the system to deliver adequate performance.
Some work attempts to specify explicit performance goals (e.g., I/O operations per second or maximum response time for a transaction). This assumes that a customer or the designer can specify the explicit performance goals needed. Often, this is not the case and, indeed, many times neither the customer nor the designer has an adequate way of determining such explicit performance goals.
Some work assumes that absolute values can be measured from an existing running system and such absolute values are used as a specification for the next generation system or for an incremental improvement of the existing system. This is better than the previous approach, because it is based upon “what is happening now,” but it fails to account for relative changes in the business environment. What may be a good basis for this year might be adequate for the short term but may be a poor basis for a system design for the longer term as the competitive climate changes, technology advances, and demands are altered.
It would be desirable to have a method of providing a system design that does not suffer these difficulties.